iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
Software Development

Python派神,大顯神威!!系列 第 26

【Day26】: 開源Python大神壓箱寶 (一) + Apache Airflow工作流程管理系統

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20221011/20141198ALP3ZsHHPM.png

還記得前5天,我們將無人辦公室的點狀功能設計出來,
這時候,有學員就開始想破我的梗了,
「接下來,還不就只能把它們串起來。。。把後面5天耗盡」
不~~~,你們把我想簡單了,
我豈是讓你們這麼好猜的人物,
短短30天,要道出Python的神功密技絕對不夠,
當然,我可以繼續把前面五個步驟給串起來說,
但,若以此方向的腳本來看,總覺得看不出Python還能有多神?
因此,我打算把相對簡單串起來的部分找機會再跟大家演示,
我們繼續來看看Python到底能有多神?

很多學生說系統設計要快就要多Reuse,
很多老闆說系統架設要快就要一次到位因應商業變化再來客製化,
依照不同的角色,說得都對!
前面幾天我們的設計就符合學生可以Reuse的需求,
今天我們就來從老闆的角度談談一次到位的Python大神級開源應用。
首先登場的是「工作流程管理系統」,
當論及開源的Python在「工作流程管理系統」方面,就非Apache Airflow莫屬不可啦!

Airflow 原先由 Airbnb 開發,現為Apache頂級專案,系統主要的程式語言是 python,具有很棒的GUI,遵循著”configuration as code”原則,就連workflow及task都是用python撰寫的。
而後開源出來的工作流程管理系統(Workflow Management System),提供了多樣的 operator 可以使用,例如 Bash Operator、Python Operator,甚至可以直接對 GCP、S3、Slack 等等進行操作,減少了自己刻輪子的麻煩。漸漸地成為資料科學家、資料工程師以及數據軟體工程師,用來建構可靠的 ETL 以及定期處理批量資料的首選。
一般而言,我們會將相關的工作設計為一個「有向無循環圖」 DAG(Directed Acyclic Graph),顧名思義就是有方向性且無回向造成循環的結構,而且整個 DAG 就是一個 Python 程式,達到大家所追求的 Infrastructure as code,減少維運上的複雜度。

Apache Airflow引以自豪人性化的GUI設計,
流程以拖拉設定的方式設計,
其包含的主要元素如下:

  • Airflow Worker: 執行task的工作單位
  • Airflow Scheduler: 安排task給Workers,即時回報排程狀況給Webserver
  • Airflow Webserver: 從Scheduler、task的logs結果來顯示UI
  • Database: 上游task裡能將執行結果存到Database,下游結果能從Database裡取得上游task的結果
    https://ithelp.ithome.com.tw/upload/images/20221011/20141198TgBgpZzazZ.png

https://ithelp.ithome.com.tw/upload/images/20221011/20141198ejHyAUecHe.png

小小充電站:
什麼是DAG(Directed Acyclic Graph)?
DAG是「有向無循環圖」的縮寫。依照連接任務的箭頭產生順序與方向,且不能循環。DAG中的每個節點都對應著一個任務,而任務為資料處理的方式。是Apache中Airflow工具的核心。

(一) Airflow在行業中的應用: -

  • 大數據
  • 金融服務。
  • IT產業。
  • 銀行業。
  • 機器學習。

有用過Linux的人都知道,若要排程作業就必須使用crontab 來管理,
但是crontab常常散置各處,
且相關的順序又很難一眼看出,
出現錯誤時常常後面的作業在前一個作業失敗後繼續執行的窘境,
若在維運階段可是會影響公司的商機。
聽了今天的Python開源方案「Apache Airflow工作流程管理系統」,
是不是被他的人性化流程介面給深深吸引了呢?

明天我們再來介紹另外由Python操刀的開源系統,明天見。


上一篇
【Day25】:實作Python實現無人辦公室 (五) +使用smtplib、MIME套件寄出附檔信件
下一篇
【Day27】: 開源Python大神壓箱寶 (二) + Apache Superset數據可視化儀表板平台
系列文
Python派神,大顯神威!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言